"""
范围缩放
    将每列的最小值转为0，最大值转为1
数学方法：
    1.用原始数据 - 最小值
    2.减完之后的结果 / 原始数据的最大值 - 最小值
"""
import numpy as np
import sklearn.preprocessing as sp

raw_sample = np.array([[1.0,2.0,3.0],
                       [4.0,5.0,9.0],
                       [7.0,8.0,11.0]])

mms_sample = raw_sample.copy()

for col in mms_sample.T:
    col_min = col.min()
    col_max = col.max()
    col -= col_min
    col /= (col_max-col_min)
print(mms_sample)

# 使用sklearn提供API实现范围缩放
# 创建范围缩放器
mms = sp.MinMaxScaler()
res = mms.fit_transform(raw_sample)
print("Sklearn")
print(res)
